"""
字典：key:value，名值对的组合。无序
    1.增加：
        字典名["key"] = value
    2.删除：根据键，删除键值对
        pop(key)
        del 字典名["key"]
    3.修改：key已经存在，就是修改，不存在就是添加
        字典名["key"] = value
    4.查找：也就是获取
        根据key获取对应的值
        字典名["key"]-->value，如果key不存在，报错KeyError: 'address'
        字典名.get(key)-->value,如果key不存在，返回None

补充：
    in，not in
    keys()-->该字典中所有的key组成的序列，使用for ...in 遍历
    values()--->获取字典中所有的value。
    items()--->获取名值对的组合
"""
# 字典：dict
# 	存储一堆数据，以key-value的形式进行存储。无序的键值对组合。
# 	允许更改字典中的数据：增删改查
#
# student1 = {
#     'name': 'zhangsan',
#     'age': 18,
#     'hobby': ['eat', 'sleep', 'beat doudou']
# }
# print(student1.keys())
# print(student1.values())

# 100 条 人的 年龄的信息
list1 = [3, 5, 7, 3, 9]
# 赵六的年龄

# {
# key1:v,
# key2:v,
# key3:v,
# key4:v
# }
# p_age = {
#     'zhangsan': 3,
#     'zhaosi': 6,
#     'wangwu': 9
#     #     .........
# }
#
# print('获取 zhaosi 的年龄:', p_age.get('zhaosi'))

# stu1 = {
#     'name': 'zhangsan',
#     'age': 18,
#     'hobby': ['eat', 'sleep', 'beat doudou']
# }
# print(stu1)
# print(type(stu1))
#
#
# # 可以通过两种方式获取 value, []  .getXXX() , 空值有不同
# print(stu1.get('name'))
# print(stu1['age'])
# print(stu1['hobby'])
#
# # print(stu1['weight']) # KeyError: 'weight'
# print(stu1.get('weight'))

stu1 = {
    'name': 'zhangsan',
    'age': 18,
    'hobby': ['eat', 'sleep', 'beat doudou']
}

stu1['weight'] = '60kg'
print(stu1)

# 删除
# stu1.pop('age')
# print(stu1)

# del stu1['weight']
# print(stu1)

#  key 存在的情况下 就是修改, key 不存在的情况下就是 增加
stu1['name'] = 'lisi'
print(stu1)

# 字典中的key 是不可以重复的

# in not in

# keys() -->该字典中所有的key组成的序列，使用for... in 遍历
# values() - -->获取字典中所有的value。
# items() - -->获取名值对的组合

# for val in stu1:
#     print(val)
# for val in stu1.keys():
#     print(val)
# for val in stu1.values():
#     print(val)
for key, value in stu1.items():
    print(key,end=': ')
    print(value)

